当前位置:  开发笔记 > 编程语言 > 正文

jline2打印"^ J"时应该在telnet控制台上打印"\n"

如何解决《jline2打印"^J"时应该在telnet控制台上打印"\n"》经验,为你挑选了0个好方法。

我正在使用JLine 2(v2.13)和Socket IO为我的应用程序创建一个管理控制台,可以通过普通的telnet客户端访问.但是我发现打印出换行符时会打印出奇怪的符号:

act.app.restart  restart app^Jact.job.list  List jobs

正确的输出应该是:

act.app.restart  restart app
act.job.list     List jobs

我追溯到代码,发现以下代码行导致了麻烦:

在此输入图像描述

另一个奇怪的事情是当我按下向上箭头来获取历史记录时,控制台打印出来^[[A并且没有其他任何事情发生.

有谁有想法吗?

更新:添加了相关的源代码

    接受传入telnet连接的代码:

在此输入图像描述

    创建ConsoleReader和分派命令的代码:

在此输入图像描述

更新2

对不起,我已经消失了一段时间.刚回来,因为我的项目让我呼吸新鲜空气.所以这就是发生的事情:我创建了一个PrintWriter并将其用作^J问题的解决方法:

在此输入图像描述

但是,jline2与telnet会话一起使用时还有许多其他问题:

    键入显示选项卡而不是激活完整列表.但是,在我按下回车键后,它会给我一个完整的列表以及一条错误消息: 在此输入图像描述

    键入箭头,显示^[[A,按回车键,它将执行我的最后一个命令.但是我丢失了命令行编辑

问题仍然存在,我相信应该有办法解决它只需要一些指导......

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有